package com.example.mqttmanage.domain.user;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 用户基础信息表，不包含权限控制
 */
@TableName(value = "user") // 注意：表名与数据库保持一致
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User implements Serializable {
    /**
     * 用户记录唯一ID，主键
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 用户登录名，必须唯一
     */
    private String username;

    /**
     * 用户密码的哈希值，例如使用 BCrypt, SCrypt, Argon2 等算法生成
     */
    private String password;

    /**
     * 用户备注信息，如个人简介、联系信息等
     */
    private String remarks;

    /**
     * 用户角色，默认为普通用户，可选择管理员角色
     */
    private String role; // 可以考虑使用枚举类型，这里用 String

    /**
     * 用户账号创建时间
     */
    private Date createTime;

    /**
     * 信息最后更新时间
     */
    private Date updateTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}